package com.yunc.modules.sys.service.impl;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yunc.modules.sys.entity.SysMessageUser;
import com.yunc.modules.sys.mapper.SysMessageUserMapper;
import com.yunc.modules.sys.service.ISysMessageUserService;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 消息关联用户
 *
 * @author congcong tao
 * @create 2020/1/14 14:04
 */
@Service("sysMessageUserService")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class SysMessageUserServiceImpl extends ServiceImpl<SysMessageUserMapper, SysMessageUser> implements ISysMessageUserService {

    private final SysMessageUserMapper sysMessageUserMapper;

    private static final String MESSAGE_QUEUE = "ackQueue";

    @Override
    public boolean insertList(String type, String title, String messageId, String userIds) {
        if (StringUtils.isNotEmpty(userIds)) {
            String[] userIdArr = userIds.split(",");
            if (userIdArr != null && userIdArr.length > 0) {
                for (String userId : userIdArr) {
                    SysMessageUser messageUser = new SysMessageUser();
                    messageUser.setUserId(userId);
                    messageUser.setMessageId(messageId);
                    messageUser.setStatus("1");
                    this.save(messageUser);
                    // 提醒消息
                    if (StringUtils.contains(type, "1")) {
                        // 1提醒到浏览器端，通过mq发送，如果每个端找到了则发送，找不到不发送
                        JSONObject jsonObject = new JSONObject();
                        jsonObject.put("userId", userId);
                        jsonObject.put("title", title);
                        // 消费者声明一个系统产生的随机队列绑定到这个交换机上，然后往交换机发消息，只要绑定到这个交换机上都能收到消息
                    }
                }
            }
        }
        return false;
    }
}
